Non-volatile memory is common to virtually all computer systems. Examples of non-volatile memory include read-only memory, flash memory, magnetic computer storage devices (e.g. hard disks, floppy disks, and magnetic tape), and optical discs. A downside of non-volatile storage is that it is relatively slow to access compared to volatile forms of memory, such as DRAM (Dynamic Random Access Memory). Thus, virtually all computer systems also include volatile memory that temporarily stores data for faster access. Conventionally, code for executing application programs and data recently used by active applications are stored to, and retrieved from, the non-volatile storage and stored in the volatile memory for faster access. As understood by a person having ordinary skill in the art, information stored in a memory cell of a non-volatile memory is preserved when a power supply voltage applied to the memory cell is interrupted or turned off. In contrast, information stored in a memory cell of a volatile memory is completely lost when the power supply voltage applied to the memory cell is interrupted or turned off.
Cache memory, which is typically a volatile memory, is a temporary storage area where frequently accessed data can be stored for rapid access. While cache memory is useful during memory access, problems may occur during a sudden loss in power. When a computer system detects a pending power problem, the computer system generally needs to prepare itself for the power loss by “flushing” the cache memory. Cache flushing refers to a method in which a computer system writes data stored in cache memory to non-volatile memory. If power is lost before the data is written, the data is lost. Accordingly, to ensure reliability of a storage device and to prevent data corruption, it is critical that sufficient battery power be maintained so that data stored in cache memory may be written to non-volatile memory.
Furthermore, even if cache memory is embodied in non-volatile memory (e.g., flash memory), in the event of power interruption, some or all of the contents of the flash memory may need to be written to a disk drive or other storage to maintain coherency of data at the various storage locations.
Conventionally, in an event of a power loss, computer systems have employed super capacitors to provide backup power to enable for data within a cache memory to be flushed to non-volatile memory. However, super capacitors are expensive and may undesirably increase the physical size of an electronic device.
There is a need for methods, systems, and devices to enhance operation of an electronic device. Specifically, there is a need for systems, methods, and devices for providing adequate backup power to a data storage device in the event of a power loss to enable the data storage device to complete one or more data operations.